<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Guideline: Effective Requirement Reviews</title>
<meta name="uma.type" content="Guideline">
<meta name="uma.name" content="effective_req_reviews">
<meta name="uma.presentationName" content="Effective Requirement Reviews">
<meta name="element_type" content="other">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="_E-dPIL-GEdqb7N6KIeDL8Q"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Guideline: Effective Requirement Reviews</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/guidance.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">This guideline discusses how to conduct reviews with relevant stakeholders to  ensure agreement, assess quality, and identify changes required.</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../practice.tech.use_case_driven_dev.base/tasks/detail_system_wide_requirements_B5BBACC3.html" guid="_4z8Z0EbEEdyx8quJU3Grxg">Detail System-Wide Requirements</a>
</li>
<li>
<a href="./../../../practice.tech.use_case_driven_dev.base/tasks/detail_use_case_scenarios_3DBC6A10.html" guid="_SL7N0LPdEduocbW-TPTq7A">Detail Use-Case Scenarios</a>
</li>
<li>
<a href="./../../../practice.tech.shared_vision.base/tasks/develop_technical_vision_9D36CF2F.html" guid="_0fOAoMlgEdmt3adZL5Dmdw">Develop Technical Vision</a>
</li>
<li>
<a href="./../../../practice.tech.use_case_driven_dev.base/tasks/identify_and_outline_requirements_90D272B9.html" guid="_P9cMUPV_EdmdHa9MmVPgqQ">Identify and Outline Requirements</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><p>
    The cost of correcting errors increases exponentially throughout the development lifecycle <a class="elementLinkWithUserText" href="./../../../core.default.nav_view.base/guidances/supportingmaterials/references_C6FF2A8D.html" guid="__nHToFndEd2EdJKkAyeBng">[BOE88]</a>. Therefore, it is important to discover problems early enough to solve them
    quickly and inexpensively.
</p>
<p>
    Requirements reviews are intended to discover problems with the <a class="elementLink" href="./../../../core.tech.common.extend_supp/guidances/concepts/requirements_8006414F.html" guid="_0Wh-sMlgEdmt3adZL5Dmdw">Requirements</a>&nbsp;before you spend significant time and work in implementing the
    wrong thing. This is not to say that you must have a complete set of requirements before implementation, but be sure to
    review, internally and with stakeholders, those that are selected for implementation in the early iterations and those
    that will have a broad impact on the system (often called <a class="elementLink" href="./../../../core.tech.common.extend_supp/guidances/concepts/arch_significant_requirements_1EE5D757.html" guid="_HrZGIA4MEduibvKwrGxWxA">Architecturally Significant Requirements</a>) to ensure everyone's concurrence before
    investing significant effort in implementation.
</p>
<h4>
    Informal reviews
</h4>
<p>
    Requirements reviews can be informal, such as simply showing draft requirements to your colleagues or demonstrating a
    prototype.
</p>
<p>
    These informal reviews are excellent for getting the structure of the requirements correct and removing obvious
    mistakes. By keeping the review team small, it is easier to make rapid progress. However, informal reviews can miss
    important perspectives&nbsp;of&nbsp;critical stakeholders.
</p>
<h4>
    Formal reviews
</h4>
<p>
    Requirement reviews can be formal meetings. Start with careful preparation, so that you receive and organize comments
    before the meeting. The meeting itself should produce decisions on all review items. After the meeting, you must pursue
    the review actions to completion. If these actions involve a substantial amount of work or require a change to an
    artifact that is under configuration control, consider submitting change requests to prioritize and track the work.
</p>
<p>
    Formal reviews are more wide-ranging and expensive. They provide for more balanced reviews from multiple
    perspectives.&nbsp; However, formal reviews involve more people, which makes them more difficult to coordinate (thus
    the need for formality) and expensive in terms of work hours.
</p>
<h4>
    Two-tier reviews
</h4>
<p>
    One technique to get the best of both worlds is to use staged, or "two-tier", reviews&nbsp;<a class="elementLinkWithUserText" href="./../../../core.default.nav_view.base/guidances/supportingmaterials/references_C6FF2A8D.html" guid="__nHToFndEd2EdJKkAyeBng">[ADO03]</a>. The&nbsp;first tier is informal and performed by a smaller team, possibly
    many times. The second&nbsp;tier is more formal and performed by the complete group, perhaps only once.
</p>
<p>
    <strong>First-tier review:</strong> The authors of the requirements and the development team&nbsp;review the
    requirements during the first-tier reviews to ensure that they are&nbsp;unambiguous, complete,&nbsp;correct and
    consistent.&nbsp; It is important to include testers and developers to ensure that the requirements are verifiable and
    feasible.&nbsp;These reviews&nbsp;determine whether the requirements are ready for the larger community to
    review.&nbsp; First-tier reviews may be informal, formal, or a combination of the two.
</p>
<p>
    <strong>Second-tier review:</strong> Involve the larger group&nbsp;during the higher-tier review to get more minds
    working on the problem and to achieve concurrence that the requirements are suitable for implementation and validation.
</p>
<p>
    At both stages, these two resources will be helpful: <a class="elementLinkWithType" href="./../../../core.tech.common.extend_supp/guidances/checklists/general_requirements_594ACCBD.html" guid="_jxn9EO0HEdqHTdbLTmC5IQ">Checklist: General Requirements</a>&nbsp;and <a class="elementLinkWithType" href="./../../../core.tech.common.extend_supp/guidances/checklists/use_case_C5362874.html" guid="_0kNwINk1Edq2Q8qZoWbvGA">Checklist: Use Case</a>
</p>
<p>
    Tiered reviews offer several benefits:
</p>
<ol>
    <li>
        Eliminate the noise caused by minor edits during the first-tier reviews, allowing subsequent reviews to focus on
        functionality
    </li>
    <li>
        Provide a professional look to the requirements, presenting both the requirements and their authors in the best
        possible light
    </li>
    <li>
        Safeguard the time of stakeholders who are reviewing the requirements, thus preventing "review burnout", or
        diminished effectiveness from overload and stress
    </li>
    <li>
        Provide the best opportunity for full, effective reviews.
    </li>
</ol>
<h4>
    Golden rules of reviewing
</h4>
<p>
    Follow these golden&nbsp;rules of reviewing <a class="elementLinkWithUserText" href="./../../../core.default.nav_view.base/guidances/supportingmaterials/references_C6FF2A8D.html" guid="__nHToFndEd2EdJKkAyeBng">[TEL06]</a>:
</p>
<ol>
    <li>
        <strong>Encourage criticism:</strong> Remember that people are improving the requirements, not criticizing you.
        Even the harshest criticism often contains a grain of truth. Adopt the attitude that every suggestion is a gift.
    </li>
    <li>
        <strong>Choose your best reviewers:</strong> A few specific people make the best reviewers, time and again.
        Cultivate them.
    </li>
    <li>
        <strong>Allow adequate time:</strong> It's not over until you have agreed upon and made the corrections.<br />
        &nbsp;
    </li>
</ol></td>
</tr>
</table>
</div>
<div class="sectionHeading">More Information</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Checklists</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../core.tech.common.extend_supp/guidances/checklists/general_requirements_594ACCBD.html" guid="_jxn9EO0HEdqHTdbLTmC5IQ">General Requirements</a>
</li>
</ul>
</td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Concepts</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../core.tech.common.extend_supp/guidances/concepts/arch_significant_requirements_1EE5D757.html" guid="_HrZGIA4MEduibvKwrGxWxA">Architecturally Significant Requirements</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright"><p> This program and the accompanying materials are made available under the<br />
  <a href="http://www.eclipse.org/org/documents/epl-v10.php" target="_blank">Eclipse 
  Public License V1.0</a>, which accompanies this distribution. </p><p/><p> <a class="elementLink" href="./../../../core.default.release_copyright.base/guidances/supportingmaterials/openup_copyright_C3031062.html" guid="_UaGfECcTEduSX6N2jUafGA">OpenUP Copyright</a></p></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
